home *** CD-ROM | disk | FTP | other *** search
Text File | 1996-05-01 | 2.8 KB | 82 lines | [TEXT/MPS ] |
- /*
- File: DeskBus.idl
-
- Contains: Apple Desktop Bus (ADB) Interfaces.
-
- Version: Technology: System 7.5
- Release: Universal Interfaces 3.0d3 on Copland DR1
-
- Copyright: © 1984-1996 by Apple Computer, Inc. All rights reserved.
-
- Bugs?: If you find a problem with this file, send the file and version
- information (from above) and the problem description to:
-
- Internet: apple.bugs@applelink.apple.com
- AppleLink: APPLE.BUGS
-
- */
- #ifndef __DESKBUS_IDL__
- #define __DESKBUS_IDL__
-
- #include <somobj.idl>
- #include <somcls.idl>
-
- #ifndef __TYPES_IDL__
- #include <Types.idl>
- #endif
- #ifndef __MIXEDMODE_IDL__
- #include <MixedMode.idl>
- #endif
-
- #ifdef __SOMIDL__
-
- #if FOR_SYSTEM7_AND_SYSTEM8_COOPERATIVE
- typedef SInt8 ADBAddress;
-
- typedef OpaquePtr ADBCompletionProcPtr;
- typedef OpaquePtr ADBCompletionUPP;
- typedef OpaquePtr ADBDeviceDriverProcPtr;
- typedef OpaquePtr ADBDeviceDriverUPP;
- typedef OpaquePtr ADBServiceRoutineProcPtr;
- typedef OpaquePtr ADBServiceRoutineUPP;
- typedef OpaquePtr ADBInitProcPtr;
- typedef OpaquePtr ADBInitUPP;
- typedef SOMLargeStruct ADBDataBlock; /* Derived from a struct of 10 bytes in size */
-
- typedef OpaquePtr ADBDBlkPtr; /* Substituted OpaquePtr for “ADBDataBlock*” */
-
- typedef SOMLargeStruct ADBSetInfoBlock; /* Derived from a struct of 8 bytes in size */
-
- typedef OpaquePtr ADBSInfoPtr; /* Substituted OpaquePtr for “ADBSetInfoBlock*” */
-
- /* ADBOpBlock is only used when calling ADBOp from 68k assembly code */
- typedef SOMLargeStruct ADBOpBlock; /* Derived from a struct of 12 bytes in size */
-
- typedef OpaquePtr ADBOpBPtr; /* Substituted OpaquePtr for “ADBOpBlock*” */
-
- /*
- ADBOp has a different interface for 68k assembly than for everything else
- for 68k assembly the interface is
- #pragma parameter __D0 ADBOp(__A0,__D0)
- OSErr ADBOp( ADBOpBlock * pb, short commandNum );
- */
- /*
- IMPORTANT NOTE:
- "Inside Macintosh: Devices" documents the completion routine for ADBOp will be called with
- four parameters using 68k register based calling conventions, specifically the completion routine
- passed in should be of type ADBServiceRoutineProcPtr. However, when upp types were first added
- to this interface file, the type ADBCompletionUPP was mistakenly used for the second parameter
- to ADBOp. Since applications have shipped using completion routines of type ADBCompletionUPP,
- the mistake cannot be corrected.
- The only difference between ADBServiceRoutineUPP and ADBCompletionUPP is the former takes an extra
- argument which is a pointer to itself, fortunately not needed for PowerPC code.
- For compatibility with existing 68k code, when an ADBOp completion routine is called,
- 68k register A1 will point to the completion routine, as documented in Inside Mac.
- */
- #endif
-
- #endif /* __SOMIDL__ */
-
- #endif /* __DESKBUS_IDL__ */
-
-